home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-03 | 6.2 KB | 261 lines | [TEXT/MPS ] |
- //----------------------------------------------------------------------------------------
- // UQuickTime.h
- // Copyright © 1996 by Apple Computer, Inc. All rights reserved.
- // Based on a contribution by Steven Friedrich
- //----------------------------------------------------------------------------------------
-
-
- #ifndef __UQUICKTIME__
- #define __UQUICKTIME__
-
- #ifndef __MOVIES__
- #include <Movies.h>
- #endif
-
- //Forward Declarations
- class TMovieView;
- class TMovieController;
-
-
-
- enum VariableMovieSize
- {
- normalSize, halfSize, doubleSize
- };
-
-
- //----------------------------------------------------------------------------------------
- // TMovie
- //----------------------------------------------------------------------------------------
-
- class TMovie : public TObject
- {
- MA_DECLARE_CLASS;
-
- public:
-
- TMovie();
-
- virtual ~TMovie();
-
- virtual void IMovie(TFile* file);
-
- virtual void SetBox(const CRect& itsBox);
-
- virtual OSErr PutOnScrap(long movieScrapFlags);
-
- virtual void Start();
-
- virtual void Stop();
-
- virtual void SetPlayEveryFrame(Boolean playEveryFrame);
-
- virtual PicHandle GetPoster() const;
-
- virtual TimeValue GetDuration() const;
-
- CRect GetBox() const;
-
- CRect GetOriginalBox() const;
-
- inline Movie GetMovie() const
- { return fMovie; }
-
- virtual Boolean IsPlaying() const;
-
- virtual Boolean IsDone() const;
-
- protected:
- CRect fOriginalBox;
- Movie fMovie;
- Boolean fPlayEveryFrame;
- };
-
- //----------------------------------------------------------------------------------------
- // TMovieViewIdler
- //----------------------------------------------------------------------------------------
- class TMovieViewIdler : public TEventHandler
- {
- MA_DECLARE_CLASS;
-
- public:
- TMovieViewIdler();
-
- virtual void IMovieViewIdler(TMovieView* itsMovieView);
-
- virtual Boolean DoIdle(IdlePhase phase);// Override
-
- protected:
- TMovieView* fMovieView;
- };
-
- //----------------------------------------------------------------------------------------
- // TMovieViewIdler
- //----------------------------------------------------------------------------------------
- class TMovieView : public TView
- {
- MA_DECLARE_CLASS;
-
- public:
-
- TMovieView();
-
- ~TMovieView();
-
- virtual void DoPostCreate(TDocument* itsDocument);
-
- virtual void HaveMovie(TMovie* movie);
-
- virtual void DoMouseCommand(VPoint& theMouse,
- TToolboxEvent* event,
- CPoint hysteresis);// Override
-
- virtual void BeInPort(GrafPtr itsPort);// Override
-
- virtual void Draw(const VRect& area);// Override
-
- virtual Boolean Focus(); // Override
-
- virtual void Activate(Boolean entering);// Override
-
- virtual void HaveMovieController(TMovieController* itsMovieController);
-
- virtual void SetFrame(const VRect& newFrame,Boolean invalidate);
-
- virtual void InvalidateMovieClip();
-
- virtual void EnsureMovieClipIsValid();
-
- virtual Boolean SetIdleIfMoviePlaying();
-
- virtual Boolean IdleMovies();
-
- virtual Boolean IsActive(); // Override
-
- virtual void InvalidateCoordinates(); // Override
-
- virtual void ComputeFrame(VRect& newFrame); // Override
-
- virtual void AdjustOffsetsForController();
-
- virtual void SetLoop(Boolean loop);
-
- virtual void SetMovieSize(VariableMovieSize newSizeH, VariableMovieSize newSizeV);
-
- virtual Boolean SetPlayWhenInactive(Boolean shouldPlay);
-
- virtual void DoMenuCommand(CommandNumber aCommandNumber);// override
-
- inline TMovie* GetMovie() const
- { return fMovie; }
-
- virtual Boolean HasMovie() const;
-
- virtual Boolean IsPlaying() const;
-
- public:
- VariableMovieSize fMovieSize[2]; // How this movie's size is to be
- // determined when the SizeDeterminer
- // is sizeVariable
- Boolean fPlayWhenInactive;
- Boolean fLoop;
- Boolean fAutoRewind;
-
- protected:
- IDType fMovieControllerIdentifier;
- TMovie* fMovie;
- TMovieController* fMovieController;
- TMovieViewIdler* fIdler;
- Boolean fWasPlaying;
- Boolean fIsActive;
- Boolean fMovieClipIsValid; // set to FALSE whenever the view's geometry changes
-
- };
-
- //----------------------------------------------------------------------------------------
- // TMovieController
- //----------------------------------------------------------------------------------------
- class TMovieController : public TView
- {
- MA_DECLARE_CLASS;
-
- public:
-
- TMovieController();
-
- ~TMovieController();
-
- virtual void DoPostCreate(TDocument* itsDocument);
-
- virtual void SetFrame(const VRect& newFrame,
- Boolean invalidate);
- virtual void Show(Boolean state,
- Boolean redraw);
-
- virtual void BeInPort(GrafPtr itsPort);// Override
-
- virtual void DoEvent(EventNumber eventNumber,
- TEventHandler* source,
- TEvent* event); // Override
-
- virtual void DoMouseCommand(VPoint& theMouse,
- TToolboxEvent* event,
- CPoint hysteresis);// Override
-
- virtual void DoKeyEvent(TToolboxEvent* event);// Override
-
- virtual void DoCommandKeyEvent(TToolboxEvent* event);// Override
-
- virtual void Draw(const VRect& area);// Override
-
- virtual Boolean Focus(); // Override
-
- virtual void Activate(Boolean entering);// Override
-
- virtual void SetActive(Boolean state);// Override
-
- virtual void AttachMovieView(TMovieView* itsMovieView);
-
- virtual Boolean SetIdleIfMoviePlaying();
-
- virtual void HaveMovie(TMovie* movie);
-
- inline MovieController GetController()
- { return fMovieController; }
-
- virtual void IdleMovies();
-
- virtual Boolean IsActive(); // Override
-
- virtual void MovieChangedFrame(const VRect& newFrame,
- Boolean invalidate);
-
- virtual void InvalidateCoordinates(); // Override
-
- virtual void SetAutoSizeToMovie(Boolean autoSize); // Override
- virtual void SetPlayEveryFrame(Boolean playEveryFrame);
- virtual void ComputeFrame(VRect& newFrame); // Override
- virtual void DoSetupMenus(); // override
- virtual void DoMenuCommand(CommandNumber aCommandNumber);// override
-
- virtual Boolean IsPlaying() const;
-
- protected:
- MovieController fMovieController;
- TMovieView* fMovieView;
- Boolean fIsActive;
- Boolean fPlayEveryFrame; // TRUE to force every frame to play
- Boolean fAutoSizeToMovie; // TRUE to make the controller stick to the bottom of the movie
- };
-
- //----------------------------------------------------------------------------------------
- // Global initialization procedure
- //----------------------------------------------------------------------------------------
- void InitUQuickTime();
- // Call this routine at initialization time
-
-
- #endif //quicktime
-
-
-